/*	
 *				
 *					ISNW ---- It is a war.It is not warcraft!
 *
 *
 *					Author:					zhoukeli(haxixi_keli)
 *					Filename:				IMeshCache.h
 *					CreateTime:				2008/12/21
 *					ModifyTime:				2008/12/21
 *
 */

#ifndef __ISNW_I_MESH_CACHE_H__
#define __ISNW_I_MESH_CACHE_H__

#include "IAnimateMesh.h"
#include "IReferenceCounted.h"

namespace ISNW
{
namespace scene
{
	class IMeshCache : public IReferenceCounted
	{
	public:
		virtual ~IMeshCache(){}

	public:
		//! get mesh
		virtual IAnimateMesh*	getmesh(const c8* filename) = 0;
		virtual const IMesh* getmesh(const c8* filename) const = 0;

		//! add mesh
		virtual void addmesh(const c8* filename,IAnimateMesh* mesh) = 0;

		//! remove mesh
		virtual bool removemesh(const c8* filename) = 0;

		virtual bool removemesh(const IAnimateMesh* mesh) = 0;

		virtual bool removemesh(const u32 idx) = 0;

	};

} // end namespace scene
} // end namespace ISNW
#endif